package pattern.behavior.template;

/**
 * @author : Rookie
 * @description : 抽象饮料类
 * @date : 2023/8/14
 */
public abstract class Beverage {

    // 模板方法，定义整体流程
    public void prepareRecipe() {
        boilWater();
        brew();
        pourInCup();
        addCondiments();
    }

    // 具体方法，烧水
    public void boilWater() {
        System.out.println("烧水");
    }

    // 抽象方法，冲泡
    public abstract void brew();

    // 具体方法，倒入杯子
    public void pourInCup() {
        System.out.println("倒入杯子");
    }

    // 抽象方法，加入调料
    public abstract void addCondiments();
}
